#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QFrame>

class SecurityToolsWidget;
class SecurityToolsModel;
class LoginSafetyWidget;
class LoginSafetyModel;
class AutoStartModel;
class StartupWidget;
class TrustedProtectionWidget;

class NetControlWidget;
class DataUsageWidget;
class NetCtrlModel;
class DataUsageModel;

class USBStorageSecurityModel;
class USBStorageSecurityWidget;

class QStackedLayout;
class QPushButton;
class MainWindow : public QFrame
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected:
    void initUI();
    void initconnect();
public slots:
    void showHomePage();
    void showLoginSafetyWidget();
    void showStartupWidget();
    void showTrustedProtectionWidget();
    void showNetControlWidget();
    void showDataUsageWidget();
    void showUsbControlWidget();
//    void showSecurityLevelWidget();

//    void showExeFilesProtectionWidget();
//    void showPeripheralsManagementWidget();
private:
    QStackedLayout* mMainLayout;
    QWidget* mToolBar;
    QPushButton* mBack;

    SecurityToolsModel*  mModel;
    SecurityToolsWidget* mHomePage;

    LoginSafetyWidget* mLoginSafetyWidget;
    LoginSafetyModel*  mLoginSafetyModel;

    StartupWidget*      mStartupWidget;
    AutoStartModel*     mAutoStartModel;

    TrustedProtectionWidget* mTrustedProtectionWidget;

    NetControlWidget* mNetControlWidget;
    DataUsageWidget*  mDataUsageWidget;
    NetCtrlModel*     mNetCtrlModel;
    DataUsageModel*   mDataUsageModel;

    USBStorageSecurityWidget* mUSBStorageSecurityWidget;
    USBStorageSecurityModel* mUSBStorageSecurityModel;
};

#endif // MAINWINDOW_H
